package com.gxy.learn.design.model.behaviour.state;

import lombok.extern.slf4j.Slf4j;

/**
 * @description: 电梯关门状态类
 * @author: gaoxueyong
 * @Date: 2022/11/8 17:07
 */
@Slf4j
public class ClosingState extends LiftState {
    /**
     * 开门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void open() {
//        电梯关门后是可以打开的
        super.context.setLiftState(Context.OPENING_STATE);
        super.context.open();
    }

    /**
     * 关门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void close() {
        log.info("电梯关门了。。。");

    }

    /**
     * 运行
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void run() {
//        电梯关门后是可以运行的
        super.context.setLiftState(Context.RUNNING_STATE);
        super.context.run();
    }

    /**
     * 停止
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void stop() {
//        电梯关门后是可以停止的
        super.context.setLiftState(Context.STOPING_STATE);
        super.context.stop();
    }
}
